home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 4 / Meeting Pearls Vol. IV (1996)(GTI - Schatztruhe)[!].iso / Pearls / dev / Language / EZasm / mk.s < prev    next >
Text File  |  1994-07-30  |  2KB  |  205 lines

  1.  
  2.  
  3. *    Make for EZAsm Version 1.9
  4.  
  5. *    Support for include path:
  6.  
  7. *        Mk [-iPathToIncludes] [path]file
  8.  
  9.  
  10.  
  11.  
  12. CLEAR_PUBLIC    equ    $10001
  13.  
  14.  
  15.     ARGS
  16.  
  17.  
  18. LONG    Nm Cdays Flock Flock1 Comb
  19. LONG    Fhandle Rbuf PtrSave WinSv
  20. BYTE    MkSw FIB[260] Tbuf[12] Buf[127]
  21.   
  22.  
  23.     Flock1 = Lock( "ezasm" -2 )
  24.     Flock1 != 0 {    ;CD'd?
  25.  
  26.         a0 = &Path
  27.         (a0) = 0
  28.  
  29.     } else {    ;ASSIGN?
  30.  
  31.         a3 = FindTask( 0 )
  32.  
  33.         WinSv = 184(a3)        ;pr_WindowPtr
  34.         184(a3) = -1 l        ;stop error
  35.  
  36.         Flock1 = Lock( "EZASM:" -2 )        
  37.  
  38.         184(a3) = WinSv        ;restore
  39.  
  40.         Flock1 = 0 Quit
  41.     }
  42.  
  43. *   Get current time
  44.  
  45.     a0 = DateStamp( &Tbuf )
  46.  
  47.     Cdays = (a0)    ;ds_Days
  48.  
  49.     d0 = 4(a0)    ;ds_Minute
  50.     swap    d0
  51.     d0 |= 8(a0)    ;ds_Tick
  52.  
  53.     Comb = d0    ;save for compare
  54.  
  55. *   Adjust CLI args for an include path..
  56.  
  57.     Nm = Args
  58.  
  59.     strrchr( Args $20 )    ; -i arg?
  60.     d0 != 0 {
  61.         d0 ++
  62.         Nm = d0
  63.     }
  64.  
  65.     qsprint( &Buf "%s.mak" Nm )
  66.  
  67.     Fhandle = Open( &Buf 1005 )
  68.     beq    Cont
  69.  
  70.     MkSw = 1
  71.  
  72.     Rbuf = AllocMem( 1000 #CLEAR_PUBLIC )        
  73.     beq    Quit
  74.  
  75.     PtrSave = d0
  76.  
  77.     Read( Fhandle d0 1000 ) 
  78.     bmi    Quit
  79.  
  80. Cont
  81.  
  82.  
  83.     print( "--------------------\n" )
  84.  
  85.     MkSw = 1 {
  86.         bsr    LoadNext
  87.     } else {
  88.         qsprint( &Buf "%sezasm %s.s\n" &Path Nm )
  89.     }
  90.  
  91.     Execute( &Buf 0 OutHandle )
  92.  
  93.     print( "--------------------\n" )
  94.  
  95.     qsprint( &Buf "%s.asm" Nm )    ;name to Lock()
  96.     bsr    Check
  97.  
  98.     MkSw = 1 {
  99.         bsr    LoadNext
  100.     } else {
  101.         qsprint( &Buf "%sa68k %s.asm\n" &Path Args )
  102.     }
  103.  
  104.     Execute( &Buf 0 OutHandle )
  105.  
  106.     print( "--------------------\n" )
  107.  
  108.     qsprint( &Buf "%s.o" Nm )
  109.     bsr Check
  110.  
  111.     MkSw = 1 {
  112.         bsr    LoadNext
  113.     } else {
  114.         qsprint( &Buf "%sblink from %s.o lib %sez.lib\n" &Path Nm &Path )
  115.     }
  116.  
  117.     Execute( &Buf 0 OutHandle )
  118.  
  119.     bra    Quit
  120.  
  121.  
  122.  
  123.  
  124. Check
  125.  
  126.  
  127.     Flock = Lock( &Buf -2 )      
  128.     beq    Quit
  129.  
  130. *   It's here, but is it more recent than current values?
  131.  
  132.     Examine( d0 &FIB )
  133.     beq    Quit
  134.  
  135.     a0 = &FIB
  136.     d0 = 132(a0)        ;fib_Date.ds_Days
  137.     d0 < Cdays  Quit
  138.  
  139.     d0 = 136(a0)        ;fib_Date.ds_Minute
  140.     swap    d0
  141.     d0 |= 140(a0)        ;fib_Date.ds_Tick
  142.  
  143.     d0 < Comb Quit
  144.  
  145.     UnLock( Flock )
  146.     Flock = 0
  147.  
  148.     rts
  149.  
  150.  
  151. *   Locate next line to Execute(), load into Buf..
  152.  
  153. LoadNext
  154.  
  155.  
  156.     a0 = PtrSave
  157.  
  158. Again
  159.     isalpha( * ) {
  160.         a0 = PtrSave 
  161.         a1 = &Buf
  162.  
  163. Nxt        (a1)+ = (a0)+ b
  164.         -1(a1) != $0a Nxt
  165.  
  166.         (a1) = 0 b
  167.         PtrSave = a0    ;( byte after $0a )
  168.  
  169.         rts
  170.     }
  171.  
  172.     a0 = PtrSave
  173. Inc    (a0)+ = $0a {
  174.         PtrSave = a0
  175.         bra    Again
  176.     }
  177.     bra    Inc
  178.  
  179.  
  180. Quit
  181.  
  182.     Fhandle != 0 {
  183.         Close( Fhandle )
  184.     }
  185.  
  186.     Rbuf != 0 {
  187.         FreeMem( Rbuf 1000 )
  188.     }
  189.  
  190.     Flock1 != 0 {
  191.         UnLock( Flock1 )
  192.     }
  193.  
  194.     Flock != 0 {
  195.         UnLock( Flock )
  196.     }
  197.  
  198.  
  199.     END
  200.  
  201.  
  202.         ds.w    0
  203. Path    dc.b    "EZASM:",0
  204.  
  205.